package com.changgou.controller;

import com.changgou.file.FastDFSFile;
import com.changgou.utils.FileFastDFSUtil;
import entity.Result;
import entity.StatusCode;
import org.csource.common.MyException;
import org.springframework.util.StringUtils;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;

import java.io.IOException;

/**
 * author：wuBin
 * 类的描述：
 */

@RestController
@RequestMapping("/upload")
@CrossOrigin
public class FileUploadController {

    @RequestMapping(method = RequestMethod.POST)
    //需要接收前端传过来的参数使用注解@RequestParam
    //接收文件对象使用的是MultipartFile，这个对象中封装了文件的相关信息
    //客户端时通过访问这个控制层，将文件传过来，然后保存到我们自己的Storage当中的
    public Result uploadFile(@RequestParam("file") MultipartFile file) throws Exception {

        FastDFSFile fastDFSFile = new FastDFSFile();
        fastDFSFile.setContent(file.getBytes());//文件字节内容
        fastDFSFile.setExt(StringUtils.getFilenameExtension(file.getOriginalFilename())); //文件扩展名
        fastDFSFile.setName(file.getOriginalFilename());
        //调用文件工具类中的文件上传的方法，将文件上传到服务器
        String[] strings = FileFastDFSUtil.uploadFile(fastDFSFile);

        //可以取出文件的内容
        //url:http://192.168.80.136:8080/group1/M00/00/00/wKjThF0DBzaAP23MAAXz2mMp9oM26.jpeg

        String data =FileFastDFSUtil.getTrackerServerUrl()+"/"+strings[0]+"/"+strings[1]+"";

        return new Result(true, StatusCode.OK,"文件上传成功",data);

    }

}
